我有这样的功能:
private myFunc = (myNumber: number) => {
if (myNumber === 1) {
console.log('here');
}
}
在myNumber为1的情况下,没有控制台输出。通过查看控制台,我可以看到myNumber被视为其他类型(字符串)。像这样更改代码即可:
private myFunc = (myNumber: number) => {
if (myNumber == 1) {
console.log('here');
}
}
在这种情况下,我的印象是Typescript会发出“编译”错误,但事实并非如此。谁能告诉我为什么?
答案 0 :(得分:1)
Typescript使用静态类型检查(运行时不存在Typescript),因此,如果将字符串传递给函数'myNumber',则为字符串。您需要在函数内添加自己的支票
private myFunc = (myNumber: number) => {
if (parseInt(myNumber) === 1) {
console.log('here');
}
}
答案 1 :(得分:1)
是的,如果您愿意的话,Typescript将显示编译时错误:
def create_new_cell(contents):
from IPython.core.getipython import get_ipython
shell = get_ipython()
payload = dict(
source='set_next_input',
text=contents,
replace=False,
)
shell.payload_manager.write_payload(payload, single=False)
但是,就像您在运行时调用它一样,Typescript无法对其进行检查。