如何在打字稿中强制variables的types?
我试图写一些函数,将mongooseUser
模型转换为一个带有项目符号的string:
// Simplified version so you get the idea interface IUser { name: string } function userDetails (user: IUser, keys: string[]): string { return keys.map((k: string): string => { return `- ${k} : ${user[k]}` }) .join('\n') }
但是我有一个奇怪的编译器错误, user[k]
下划线:
对象types的索引签名隐式地具有“任何”types。
有没有办法“强制”打字机pipe理该user[k]
是一个string? 我尝试user[k] as string
或<string> user[k]
没有成功。
另外,如果我从返回的string中删除${user[k]}
,那么编译器会停止抱怨
从编译器的错误公寓,一切工作在运行时。
谢谢 !
尝试这个:
function userDetails(user: IUser, keys: string[]): string { let dic: { [prop: string]: string } = <any>user return keys.map((k: string): string => { return `- ${k} : ${dic[k]}` }) .join('\n') }
- Typescript Interface vs
- TS2304:无法在节点5.1.0,typescript 1.6.2,webstorm 11中find名称“Map”
- 在使用Webpack构buildAurelia应用程序期间,找不到名称空间“Webpack”
- 在VS Code中configurationtypescript debug的launch.json
- 使用requirejs加载一个带有几个类的文件(grunt-concat)
- 无法安装NodeJS模块
- 什么是“js”方法在gulp上(对于使用gulp-typescript的Typescript项目)
- 如何find在Node + Typescript + VSCodeasynchronous函数调用缺less的等待?
- Typescript声明合并:重写?