我正在编写一个请求助手,我想在其中定义对象中的自定义属性,而不是将它们设置为参数。
因此,我希望下面的代码工作
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}
,但也没有成功。
如果你想让他们传递一个属性为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' });