发表于: 2020-05-30 16:55:16
0 2035
TypeScript学习心得
:
基础类型:
基础规则:
let声明
:+类型
=赋值;
类型有:
数值:number
与JavaScript中一样,TypeScript中的所有数字都是浮点值。这些浮点数获得类型number
。除了十六进制和十进制文字,TypeScript还支持ECMAScript 2015中引入的二进制和八进制文字。
let age: number = 37;
字串: string
使用JavaScript为网页和服务器创建程序的另一个基本部分是使用文本数据。与其他语言一样,我们使用类型string
来引用这些文本数据类型。与JavaScript一样,TypeScript也使用双引号("
)或单引号('
)包围字符串数据。
let color: string = "blue";color = 'red';
它可以跨越多行并具有嵌入式表达式。这些字符串由反引号/反引号(`
)字符包围,并且嵌入式表达式的形式为${ expr }
。
let fullName: string = `Bob Bobbington`;
let age: number = 37;
let sentence: string = `Hello, my name is ${ fullName }.I'll be ${ age + 1 } years old next month.`;
布尔:Boolean
最基本的数据类型是简单的true / false值,JavaScript和TypeScript将该boolean
值称为值
let isDone: boolean = false;
数组:Array
像JavaScript一样,TypeScript允许您使用值数组。数组类型可以用以下两种方法之一编写。首先,您使用元素的类型,后跟[]表示该元素类型的数组:
let list: number[] = [1, 2, 3];
第二种方法使用通用数组类型Array<elemType>:
let list: Array<number> = [1, 2, 3];
元祖:Tuple
元组类型允许您用固定数量的元素表示数组,这些元素的类型是已知的,但不必相同。例如,您可能希望将值表示为一对a string
和number
:
let x: [string, number];
x = ["hello", 10]; // OK// Initialize it incorrectly
x = [10, "hello"]; // Error
访问一组已知索引之外的元素失败,并显示错误;(会对长度进行限制,查询超出长度的会报错)
枚举:Enum
JavaScript是对标准数据类型集的有用补充enum
。与C#等语言一样,枚举是一种为数字值集赋予更友好名称的方法。
enum Color {Red, Green, Blue}
let c: Color = Color.Green;
提前创建一个类似 js里class 的模板
在来声明这个类
enum Color {Red = 1, Green, Blue}
enum Color {Red = 1, Green = 2, Blue = 4}
enum Color {Red = 1, Green, Blue}
您也可以在枚举中从数字值转到该值的名称。例如,如果我们有值,2
但不确定Color
上面的枚举中映射到的值,我们可以查找对应的名称
enum Color {Red = 1, Green, Blue}
let colorName: string = Color[2];
console.log(colorName); // Displays 'Green' as its value is 2 above
任何:Any
我们可能需要描述编写应用程序时不知道的变量类型。这些值可能来自动态内容,例如来自用户或第三方库。在这些情况下,我们要选择退出类型检查,并让值通过编译时检查。为此,我们用以下any
类型标记它们:
let notSure: any = 4;
notSure = "maybe a string instead";
notSure = false; // okay, definitely a boolean
空洞:void
void
有点相反any
:根本没有任何类型。您可能通常将其视为不返回值的函数的返回类型:
function warnUser(): void {
console.log("This is my warning message");
}
声明类型的变量void
没有用,因为只能分配null
(仅在--strictNullChecks
未指定的情况下,请参阅下一节)或undefined
分配给它们:
(这是一个函数的返回类型,当声明为变量时则只能赋值为null(有限制;仅在--strictNullChecks
未指定的情况下)和undefined)
let unusable: void = undefined;
unusable = null; // OK if `--strictNullChecks` is not given
空和未定义;null || undefined
在TypeScript中,undefined
和和null
实际上都有各自的类型undefined
,null
分别命名为和。很像void
,它们本身并不是非常有用:
let u: undefined = undefined;
let n: null = null;
默认情况下null
和undefined
是所有类型的子类型。 就是说你可以把 null
和undefined
赋值给number
类型的变量。
但是,当使用--strictNullChecks
标志时,null
和undefined
只能分配给any
和各自的类型(一个例外undefined
是也可以分配给void
)。这有助于避免许多常见错误。如果要传递a string
或null
or undefined
,则可以使用并集类型string | null | undefined
。
如果使用--strictNullChecks 标志(即严格模式时)null不能分配给void 而undefined可以
并且严格模式下一个变量要变为undefined或者null必须声明时声明成并集类型;
永不:never:
该never类型表示值是不会发生的类型。例如,never是总是抛出异常或永不返回的异常的函数表达式或箭头函数表达式的返回类型;当变量never被任何永远不可能为真的类型保护范围缩小时,变量也会获取类型。
的never类型是其子类型,分配给,每一种类型; 但是,没有类型是never(never本身除外)的子类型或可分配给它的子类型。甚至any无法分配给never。
函数返回的一些示例never:
评论