interface Demo1{
uname: string,
age: number
}
Ts中的四大类型: 对象、数组、类、函数
const guaPi:{
name:string,
age:number
} = {
name: '瓜皮哦',
age:13
}
const saoPi: string[] = ['川普', '类似']
class Person{ }
const Pu: Person = new Person()
const chuanPu: () => string = () => {
return '1'
}
类型注解
const numberArr = [1, 2, 3]
const numArr :number[] = [1, 2, 3]
const strArr :string[] = ['a', 'b', 'c']
const undiArr :undefined[] = [undefined]
const NSArr :(string | number)[] = [1, 'a']
const NSOArr1 :{}[] = [1,'a',{name:'abc'}]
const NSOArr2 :{ name :string }[] = [{ name: 'abc' }]
let count: number;
count = 123;
console.log(count);
- 类型注解也就是在定义变量、常量时在变(常)量前加上冒号和类型
类型推断
let countInference = 123;
- 类型推断就是,赋值后,可以推断出该变量的类型(简单时可推断)
- 在环境条件复杂时,是不能推断出类型的。例如:在方法中的传参方式是不能推断出类型的,此时可以看到类型是any
返回类型注解
function demo4(one:number, two:number) {
return one + two + ''
}
const total2: number = demo4(1, 2)
function demo4(one:number, two:number): number {
return one + two + ''
}
function sayHello() :void {
console.log('Hello Wrold!');
}
函数参数中注解
function add({one, two}: {one:number,two:number}) {
return one + two
}
const total2 = add({one:1,two:2})
类型别名
type Lady = { name: string, age: number }
const classType1: Lady[] = [
{ name: '姓名', age: 18 },
{ name: '瓜皮', age: 19 },
]
class Madam {
name: string;
age: number;
}
const classType2: Madam[] = [
{ name: '姓名', age: 18 },
{ name: '瓜皮', age: 19 },
]
元组
const arrPlus:[string,string,number] = ['瓜皮','厚皮',99]
接口
interface Girl {
name: string,
age: number,
bust: number,
[propname: string]: any;
say():string
}
const girl = {
name: '晓彤',
age: 20,
bust: 79,
waistline: 29
}
const screenResume1 = (girl:Girl) => {
girl.age<24 && girl.bust>=90 && console.log(girl.name+'成功!');
girl.age>=24 || girl.bust<90 && console.log(girl.name+'失败!');
}
const getResume = (girl:Girl) => {
console.log(girl.name + '年龄' + girl.age);
console.log(girl.name + '体重' + girl.bust);
girl.waistline && console.log(girl.name+ '腰围' + girl.waistline);
}
getResume(girl)