基本类型的定义方式
- null和undefined类型是任意类型的子集
ts
// 这是允许的
let age: number = null
- 数组的定义方式
ts
// 方式一
let num: number[] = [1,2,3]
// 方式二
// 类数组
interface LikeArr {
[index: number]: string
}
const likeArray: LikeArr = ['1', '2', '3']
- 元组的定义方式
ts
let user: [string, number] = ['age', 12]
// 如果使用push添加元素,那么添加的类型只能是定义好的类型里面的其中一种
user.push(20)
- 函数的定义
ts
// 方式一:
// 函数括号后面的类型是指函数返回值的类型
function add(x: number, y: number): number {
return x + y
}
// 方式二
// 箭头后面的类型是指函数返回值的类型
const add2: (x: number, y: number) => number = add
// 方式三
const sum = (x: number, y: number) => {
return x + y
}
interface ISum {
(x: number, y: number): number
}
const sum2: ISum = sum
- 对象的定义
ts
// 方式一
interface Person {
readonly id: number; // readonly只读属性
name: string;
age?: number; // ?代表可选
}
const man: Person = {
name: '名字',
age: 11,
id: 1
}
// 方式二
// 适用于对象属性不确定的情况
interface RandomMap {
// propName是个变量(可不定义),第一个string是指变量类型,第二个string是指属性的类型
[propName: string]: string
}
const test: RandomMap = {
a: 'xsxa',
b: 'aq'
}