typescript - 不能使用带括号的可索引类型
问题描述
// EX 1
interface Animal {
[dwdwdwd: number]: string;
}
let myArr : Animal = ["Joy", "Joy2"];
console.log("EX1 : " + myArr[1]); // Joy2
// EX 2
interface States {
[state: string]: boolean;
}
let myArr2: States = {'enabled': true, 'maximized':false};
console.log("EX2 : " + myArr2['maximized']); // false
// EX 3
interface Animal2 {
(props: { [key: string]: any }): boolean;
}
const test = {props : {'enabled':false}}; // I don't think this is correct of putting variable
let myArr3 : Animal2 = test; // compile error
我想制作make EX 3,以便它使用“接口Animal2”,但我不知道如何像EX1和EX2中所示的方式使用它。
谁能给我一个使用EX3的例子?和 console.log 它的任何变量。非常感谢你。
解决方案
看起来您正在尝试为函数创建接口:
interface Animal2 {
(props: {[key: string]: any}): boolean;
}
let isPeterPan: Animal2 = (props: {name: string, lastName: string}) => props.name === "peter" && props.lastName === "pan";
console.log(isPeterPan({name: "peter", lastName: "parker"})); // false
console.log(isPeterPan({name: "peter", lastName: "pan"})); // true
推荐阅读
- angular - 如何在与ngFor循环的ngModel中绑定动态生成的数组?
- php - Api平台自定义动作表单提交失败
- google-chrome - 如何在没有我在 Chrome 中决定的情况下禁止网站安装应用程序?
- javascript - 如何在时间小于 10 秒时播放哔声
- java - Spring Boot 微服务依赖于 Jenkins 中的另一个微服务
- python - Python 代码在手动运行时在 Power shell 中完美运行,但不是在计划时运行
- powershell - 不在forin循环中的变量中添加数据
- excel - 无法找到最后一行并将内容粘贴到最后
- python - 如何向 python selenium 驱动程序添加谷歌扩展?
- parsing - 在 Elixir 中解析 http 请求