1. 生成 tslint.json
首先下载 tslint,注意一定要全局,否则不生效
cnpm i tslint --save -g
生成 tslint.json
tslint --init
此时项目中:
2. 使用接口绕过多余属性检测的方式
在接口中如果没有定义,但是使用时加了新字段会提示错误,介绍两种解决办法
(1) 修改接口
interface paramsCheck {
activityId: string,
age: number,
[prop: string]:any // 其他未定义类型的数据,属性名是string类型
}
const getUserInfo = (params: paramsCheck):string => {
return `activityId: ${params.activityId}, age: ${params.age}`
}
var res = getUserInfo({
activityId: '23',
age: 23,
sex: '女'
})
console.log(res)
(2)不直接传,借助对象
interface paramsCheck {
activityId: string,
age: number
}
const getUserInfo = (params: paramsCheck):string => {
return `activityId: ${params.activityId}, age: ${params.age}`
}
let info = {
activityId: '23',
age: 23,
sex: '女'
}
var res = getUserInfo(info)
console.log(res)
这样也不会报错
接口中定义只读:readonly
interface paramsCheck {
activityId: string,
readonly age: number
}
const getUserInfo = (params: paramsCheck):string => {
params.age = 22 // 修改
return `activityId: ${params.activityId}, age: ${params.age}`
}
提示错误:
接口的继承:使用 extends 关键字
interface Vegetables {
color: string
}
interface Tomatos extends Vegetables {
type: string
}
const tomato:Tomatos = {
color: 'red',
type: 'am'
}
将两者的名叠加起来