TS是JS的超集,所以JS基础的类型都包含在内。
基础类型:Boolean、Number、String、null、undefined 以及 ES6 的 Symbol 和 ES10 的 BigInt。
string类型
//普通声明
let a: string = 'lx'
//也可以使用es6的字符串模板
let str: string = `DayDayUp${a}`
number 类型
支持十六进制、十进制、八进制和二进制;
let notANumber: number = NaN; //Nan
let num: number = 123; //普通数字
let infinityNumber: number = Infinity; //无穷大
let decimal: number = 6; //十进制
let hex: number = 0xf00d; //十六进制
let binary: number = 0b1010; //二进制
let octal: number = 0o744; //八进制s
boolean 类型
注意,使用构造函数 Boolean
创造的对象不是布尔值:
// 这样会报错 应为事实上 new Boolean() 返回的是一个 Boolean 对象
let createdBoolean: boolean = new Boolean(1) // 错误
// 事实上 new Boolean() 返回的是一个 Boolean 对象 需要改成
let createdBoolean1: Boolean = new Boolean(1)
let booleand: boolean = true //可以直接使用布尔值
let booleand2: boolean = Boolean(1) //也可以通过函数返回布尔值
void 空值类型
JavaScript 没有空值(Void)的概念,在 TypeScript 中,可以用 void
表示没有任何返回值的函数
function voidFn(): void {
console.log('test void')
}
void
类型的用法,主要是用在我们不希望调用者关心函数返回值的情况下,比如通常的异步回调函数。
void也可以定义undefined 和 null类型
let u: void = undefined
//null 不能 赋予 void 类型 (需要关闭严格模式来解决不能赋值的问题)
let n: void = null;
Null和undefined类型
-
undefined
表示一个变量已经声明但未被初始化,或者一个对象属性存在但未被赋值。如果一个函数没有返回值,则默认返回undefined
。 -
null
用于表示一个对象为空值,即该对象不存在或没有任何值。可以将其作为特殊值来处理,也可以将其视为空对象。
let u: undefined = undefined;//定义undefined
let n: null = null;//定义null
void 和 undefined 和 null 最大的区别?
undefined
和 null
是所有类型的子类型。也就是说 undefined
类型的变量,可以赋值给 string 类型的变量
// 这样写会报错 void 类型不可以分给其它类型
let test: void = undefined
let num2: string = "1"
num2 = test
// 这样是没问题的(需要关闭严格模式)
let test: null = null
let num2: string = "1"
// 穿插赋值
num2 = test
// 或者这样的 (需要关闭严格模式)
let test: undefined = undefined
let num2: string = "1"
num2 = test
void
表示无效的值,undefined
表示缺失的值,而 null
表示空值。在 TypeScript 或 JavaScript 中,当需要明确指出某个变量或表达式的值为这些中的任何一个时,应该使用对应的关键字。
TIPS 注意:
如果你配置了tsconfig.json 开启了严格模式;
{
"compilerOptions":{
"strict": true
}
}
// 不能将类型“null”分配给类型“void”
let n:void = null; //错误
let u:void = undefined // 正确
// 开启严格模式是不可以交换夫赋值的
n = u
u = n
console.log(n,u);