美文网首页
【TS】变量

【TS】变量

作者: 大Q本Q | 来源:发表于2019-06-25 17:52 被阅读0次

let const

let name = 'WJ';
let info:{name:string | number} ;
info = {name:'WJ'};
info = 404

类型推断

当未明确给出类型时,会在第一次赋值时,根据值来推断类型

let x = 'WJ';   // x未定义类型,但赋值字符串'WJ',那么x的类型和'WJ'一样,类型是string
x = 18;         // 错误:因为x是字符串
x = 'WanJin';   // 正确

数组解构

let [a, b] = [1,2];         // a:1, b:2
let [a, ...b] = [1,2,3,4];  // a:1; b:[2,3,4]
let [,a,,b] = [1,2,3,4];    //a:2; b:4

对象解构

let {a, b} = {b:3, a:1};    // a:1, b:3
let {a, ...obj} = {a:1, b:2,c:3};    // a:1, obj:{b:2,c:3}
({a, b} = {b:3, a:1});      // 同上

数组展开

[1, ...[2,3], ...[4] ]; // [1,2,3,4]

对象展开

{ a:1, ...{b:2, c:3}};  // {a:1, b:2, c:3}

两个变量是对象,进行赋值

被赋值对象的所有属性,在所赋值中必须全部存在

let x = {name:'WJ'}
let y = {name:'WanJin',age:18}
x = y;  // 正确:x的属性name,能在y中找到
y = x;  // 错误:y的属性age,无法在x中找到

两个变量是函数,进行赋值

与上面对象赋值刚好相反
所赋值函数的参数,在被赋值函数中必须全部存在
参数名可以不同,但是类型和顺序必须一致

let  func_x = (a:number)=>0;
let func_y = (b:number, c:string)=>0;
func_x = func_y;  // 错误:func_y中的参数c,无法在func_x中找到
func_y = func_x;  // 正确:func_x中参数a,可以在func_y中找到

就算参数是对象,也要比较对象的属性

let x = () => ({name: 'Alice'});
let y = () => ({name: 'Alice', location: 'Seattle'});

x = y; // 正确
y = x; // 错误

两个变量是类,进行赋值

与对象类似,但是只检测可实例部分属性和方法,不检测静态的(比如构造函数等)
private、protected属性必须都存在

class PERSON {
    name:string;
    constructor(name:string, age:number){}
}
class STUDENT {
    name:string;
    constructor(name:string){}
}
let person : PERSON;
let student : STUDENT
person = student;  // 正确
student = person;  // 正确

两个枚举,进行复制

不同枚举,不能赋值

enum PERSON {
    name

}

enum STUDENT {
    name=3
}

let person = PERSON.name;
person = STUDENT.name;    // 错误

相关文章

  • typescript 基本语法详解

    1、.d.ts是干嘛的 .d.ts文件是ts用来声明变量,模块,type,interface等等,声明变量之后,在...

  • TS变量

    数据类型 JS 七种类型 + 枚举 + any + void + never 声明了类型,若想转其他类型,可直接a...

  • 【TS】变量

    let const 类型推断 当未明确给出类型时,会在第一次赋值时,根据值来推断类型 数组解构 对象解构 数组展开...

  • TS的.d.ts和declare

    一、.d.ts d.ts文件是ts用来声明变量,模块,type,interface等等的,那在这种后缀的ts文件声...

  • umijs@use-request源码解读

    一、了解ts基本语法 涉及ts的变量声明、接口、类、函数、泛型等 ts语法知识[https://typescrip...

  • typescript 中的数据类型

    在ts中,必须设置变量的数据格式。 类型推断 你在初始化变量时并没有明确地指定变量类型的话,则ts会自动根据变量的...

  • 用 Jest 测试一切你想测试的

    测试环境变量 mysql.ts mysql.spec.ts 说明 beforeEach 每次执行一个it方法后执行...

  • .bat文件执行cmd命令生成qt翻译文件ts和qm

    生成ts 转换成qm qt中执行生成相对路径的ts文件pro的cmd窗口中(只更新) 翻译变量:全局变量时可先写成...

  • ts 命名空间

    1. ts 命名空间内元素的导出和导入 新建 student.ts,创建命名空间,导出接口、类、函数、变量 新建 ...

  • 2、TS 变量与数据类型

    1、js与ts区别一: js不需要声明变量类型,如果一开始变量的值是字符串,后面变改成了数值,也没有关系 但是ts...

网友评论

      本文标题:【TS】变量

      本文链接:https://www.haomeiwen.com/subject/isuxcctx.html