tsc --init 初始化环境
tsc --demo.ts ---> demo.js
ts-node 依赖安装 ts-node demo.ts
interface Person {
// readonly name: string, // 代表这个属性是可读,不可写
name: string,
age?: number, // 代表这个属性可有可无
[propName : string] : any, // 代表除了name以外,还可以有其他的参数,可以是任何值的字符串类型
say() : string // 还可以传方法
}
interface Teach extends Person {
teach(): string
}
// 定义函数类型interface
interface SayHi {
(word: string) : string
}
const say: SayHi = (word) => {
return word
}
const getPersonName = (person: Person) => {
console.log(person.name)
}
const setPersonName = (person: Teach, name: string) => {
person.name = name
}
const person = {
name: 'll',
sex: 'male',
say() {
return 'sss'
},
teach() {
return 'teach'
}
}
getPersonName(person)
setPersonName(person,'ll')
// interface和type的主要区别?
// type可以直接表示一个String, 基本类型
type Person = string
// interface只能代表函数和对象,无法代表基础类型,能用接口尽量用接口,实在不行再用type
interface Person {
name: string
}
2、type可以定义联合类型,interface不行
interface Dog {
abc: string
}
interface Cat {
efg: number
}
type Pet = Dog | Cat