问题
- typescript引入没有申明过的第三方库
- typescript中应用map forEach filter find遍历用[]取属性时报错Element implicitly has an 'any' type because expression of type 'string' can't b...
解答
1.申明第三方库
- 有的第三方库是有申明文件的,这时咱们只须要
npm install @types/{模块名}
没有申明文件的第三方库
- 在我的项目的src下建一个@type文件夹,在这个文件夹上来编写申明文件
- 例子
// main.tsimport { VeRadarChart } from 've-charts'Vue.component('VeRadarChart', VeRadarChart)
// @types/definition.d.tsdeclare module 've-charts' { export class VeRadarChart { }}
像这样申明一下就能用了
2.用[]获取属性报错
// index.vueimport Service from './service.ts'const tService: any = Service// Service不能间接被遍历获取属性,然而tService能够let _promises = this.formItem.map(({service}: any): any => { return tService[service]()})// Promise.all...........xxxx......
// service.tsexport default { async getList(params) { return await XXXXXX }}
// const.tstype FormItem<T> = { label: T prop: T type: T service: T}export const formItem: Array<FormItem<any>> = [ { label: '投诉类型', prop: 'complainType', type: 'select', service: 'getComplainType' }, { label: '问题维度', prop: 'problemDim', type: 'select', service: 'getProblemDim' }, { label: '用户危险等级', prop: 'riskLevel', type: 'select', service: 'getRiskLevel' }]