企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
自从ES2015中引入了Symbol,ES2020引入了BigInt,在js中共包含了7种基本类型,分别是`String`,`Number`,`Boolean`,`undefind`,`null`,`Symbol`,`BigInt`。同时,这些基本类型在ts中也相应的包含了这些基本类型。 ### **字符类型** 在ts中,使用`string`来表示字符类型 ```javascript const title: string = '这是typescript的字符串' ``` 在es2015中引入了模板字符串,在ts中,字符类型也支持使用模板字符串 ```javascript const name: string = '子君' const desc: string = `我的名字叫${name}` ``` 当然拼接字符串也是可以的 ```javascript const firstName: string = '子君' const lastName: string = '托洛夫斯基' const name: string = firstName + '·' + lastName ``` ### **数值类型** 在ts中,使用`number`来表示数值类型 ```javascript const age: number = 16 ``` 数值可以表示为二进制,八进制,十进制和十六进制 ```javascript // 二进制 const num1: number = 0b10101 // 八进制 const num2: number = 0o5023 // 十进制 const num3: number = 1234 // 十六进制 const num4: number = 0xA23D ``` 在js中有两个特殊的值`NaN`和`Infinity`,它们在ts中也属于数值类型 ```javascript const num5: number = NaN const num6: number = Infinity ``` ### **布尔类型** 在ts中,使用`boolean`来表示布尔类型 ```javascript const isTrue: boolean = true ``` ***注意*** ts中boolean类型只有两个值,`true`和`false`,在js中,除这两个值之外,其他Falsy值均不能表示为boolean类型(undefined与null比较特殊,见下一节)。 ```javascript // 报错 Type '0' is not assignable to type 'boolean' const result: boolean = 0 ``` Falsy值包括 false, undefined, null ,0, '', NaN, 0n ### **undefined** 和 **null** 在ts中,`undefined`和`null`即表示为值,也表示为类型,具体是值还是类型,取决于在语法中的位置 ```javascript // 前一个undefined为类型,后一个为值 const name: undefined = undefined const sex: null = null ``` 在ts中,`undefined`与`null`是任何其他类型的子集,这意味着所有其他类型的变量属性都可以被赋值为`undefined`,`null` ```javascript let name: string = undefined name = '张三' let age: number = null age = 10 ``` 在上一节说道布尔类型只能赋值`true`或者`false`,其实也可以赋值`undefined`,`null` ```javascript let isTrue: boolean = undefined isTrue = true ``` 如果只想让`undefined`,`null`赋值给自己这种类型,可以在`tsconfig.json`开启`strictNullChecks` ```json { "compilerOptions": { "strictNullChecks": true } } ``` ### **Symbol** `Symbol`是ES2015新增类型,它的功能类似于一种标识唯一性的ID。 ```javascript const symbol1: Symbol = Symbol() // symbol 可以指定一个描述 const symbol2: Symbol = Symbol('key') ``` ### **BigInt** `BigInt`是ES2020新增数据类型,用于支持比Number数据类型支持的范围更大的整数值。使用BigInt,整数溢出的问题将不复存在。 ```javascript // bigint数值,需要在数字后面加字母n const bigint1: bigint = 999999999999999999n // 也可以使用BigInt构造函数来表示 const bigint2: bigint = BigInt('9999999999999') ```