我正在编写一个请求助手,我想在其中定义对象的自定义属性,而不是将其设置为参数。
因此,我希望下面的代码正常工作
import { IRequest } from './request'
export default class Request implements IRequest {
constructor({baseUrl: string, timeout: string}: object) {}
}
接口:
export interface IRequest {
new: ({ baseUrl: string, timeout: number }: object): void
}
没有类型object
的情况下,我会看到一条错误消息,指示构造函数中的参数应具有typedef
,这很公平-但是当我分配:object
时(如上所述)得到:[tslint] variable name clashes with keyword/type [variable-name]
。
您能建议正确的方法吗?我可能在类型定义上做错了。尝试过{[key: string]: any}
,但也没有运气。
答案 0 :(得分:0)
如果希望他们传递具有属性baseUrl
和timeout
的对象,则需要先命名它,然后键入它。像这样:
// name: type
constructor(obj: {baseUrl: string, timeout: string}) {}
简化示例:
class Example {
constructor(obj: { baseUrl: string, timeout: string }) {
console.log(obj.baseUrl);
console.log(obj.timeout);
}
}
const request = new Example({ baseUrl: 'localhost', timeout: '5s' });