我正在尝试将此JS代码转换为现代的TypeScript,以便在Angular 6中使用。
function run(interval, frames) {
var int = 1;
function func() {
document.body.id = "b"+int;
int++;
if(int === frames) { int = 1; }
}
var swap = window.setInterval(func, interval);
}
run(1000, 10); //millisec
我做了一些改进,但仍无法按预期工作。如何将其完全转换为TypeScript以完美地使用Angular?
答案 0 :(得分:0)
因为TypeScript是JavaScript的超集。每个普通的JavaScript都是完全有效的TypeScript。
话虽如此,这是您可以引入强类型和现代ES6语法的方法:
function run(interval: number, frames: number) {
let int: any = 1;
function func() {
document.body.id = "b" + int;
int++;
if (int === frames) {
int = 1;
}
}
const swap = window.setInterval(func, interval);
}
run(1000, 10); //millisec
注意::我刚刚将类型添加到了run
函数的参数中。我还将int
的类型设置为any,然后将其添加到字符串中,然后再对其进行递增。您可以通过将其粘贴到TypeScript Playground中来检查其是否有效。它应该给您任何错误。
答案 1 :(得分:0)
我在这里扩展了SiddAjmera的答案。我已经用匿名箭头函数替换了func()
中的run
函数。我已经删除了any
类型(您永远不要使用)。
我已将代码放在Angular组件中。
class TestAngular {
int:number
swap:number
run(interval: number, frames: number) {
this.int = 1
this.swap = window.setInterval(()=>{
console.log(this.int)
this.int++
if (this.int == frames) {
this.int = 1
}
}, interval)
}
let s = new TestAngular()
s.run(500,10)