打字稿:尝试将两个变量相加,但将两个变量串联

纳西姆·伊贾基雷内

我的Typescript类中有三个变量:

A:number;
B:number;
C:number;

在课程的另一部分中,我尝试添加两个变量A和B:

this.C = this.A+this.B; // A =20 and B = 50;

我在html模板中显示C

<span>{{C}}</span>

我的问题是,不是得到两个变量的加法,而是(20+50=70)得到串联(2050)!

有谁可以帮助我吗 ?

更新

这是导致问题的确切代码部分:

goTo(page:number,type:script) {
    //    
    this.pageFirstLineNumber = page;
    this.pageLastLineNumber = page + this.LINE_OFFSET; //concatenation!!
}

请注意,pageLastNumber被声明为数字类型,LINE_OFFSET是olso数字类型,我已经找到了解决此问题的方法,但是打字脚本编译器输出错误(禁止使用eval):

////
....
this.pageFirstLineNumber = eval(page.toString()); // now It works !!
this.pageLastLineNumber = page + this.LINE_OFFSET; //concatenation!!

更新

这是LINE_OFFSET变量的声明:

private _calculateOffset(fontSize: number) {
    let linesDiff = (fontSize * 27) / 14;
    let lines:number = 27 - (linesDiff - 27);
    this.LINE_OFFSET = Math.floor(lines);
    if (fontSize >= 17 && fontSize <= 20) {
        this.LINE_OFFSET += (Math.floor(fontSize / 3) - 2);
    }
    if (fontSize > 20 && fontSize <= 23) {
        this.LINE_OFFSET += (Math.floor(fontSize / 2) - 2);
    }
    if (fontSize > 23 && fontSize <= 25) {
        this.LINE_OFFSET += (Math.floor(fontSize / 2));}
    if (fontSize > 25 && fontSize <= 27) {
        this.LINE_OFFSET += (Math.floor(fontSize / 2) + 1);
    }
    if (fontSize > 27 && fontSize <= 30) {
        this.LINE_OFFSET += (Math.floor(fontSize / 2) + 4);
    }
}
尼桑·托默尔(Nitzan Tomer)

当您在接口中声明属性为a时number,它仅保留为声明,不会将其翻译为javascript。

例如:

interface Response {
    a: number;
    b: number;
}

let jsonString = '{"a":"1","b":"2"}';
let response1 = JSON.parse(jsonString) as Response;

console.log(typeof response1.a); // string 
console.log(typeof response1.b); // string
console.log(response1.a + response1.b); // 12

如您所见,json具有ab作为字符串而不是数字,并且在接口中将它们声明为数字对运行时结果没有影响。

如果从服务器获取的内容被编码为字符串而不是数字,则需要对其进行转换,例如:

let response2 = {
    a: Number(response1.a),
    b: Number(response1.b)
} as Response;

console.log(typeof response2.a); // number 
console.log(typeof response2.b); // number
console.log(response2.a + response2.b); // 3

整个代码在操场上

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

两个变量相加

来自分类Dev

将两个列表相加

来自分类Dev

将两个变量合并为新变量

来自分类Dev

R:将变量级别分为两个变量

来自分类Dev

将两个变量存储到localStorage时如何连接两个变量?

来自分类Dev

将两个变量合并为一个

来自分类Dev

将两个列表的第i个元素相加

来自分类Dev

在线性算术时间内将两个离散随机变量相加的概率质量

来自分类Dev

在线性算术时间内将两个离散随机变量相加的概率质量

来自分类Dev

将两个自变量的函数应用于两个矩阵

来自分类Dev

将变量除以两个值并仍返回两个值

来自分类Dev

如何将两个连续的输入分配给两个不同的变量?

来自分类Dev

如何同时将两个不同的值分配给两个变量

来自分类Dev

在MATLAB中串联两个或多个结构类型变量

来自分类Dev

将值分为两个不同的变量

来自分类Dev

将两个SQL表与where变量组合

来自分类Dev

WPF将两个变量绑定到边距

来自分类Dev

将两个$ _GET变量拆分为路径

来自分类Dev

将WordPress标题设置为两个单独的变量

来自分类Dev

将两个嵌套的小齿变量相乘

来自分类Dev

将限制存储为两个变量

来自分类Dev

将rmvnorm和dmvnorm用于两个变量

来自分类Dev

使用for循环将键值对分为两个变量

来自分类Dev

将$ watch用于两个变量angularjs

来自分类Dev

将 Javascript 变量附加到两个 HTML 链接

来自分类Dev

Javascript:将输入放在两个变量之间并输出

来自分类Dev

将输出拆分为两个变量

来自分类Dev

使用指针将两个4向量与sse相加

来自分类Dev

ORACLE将两个SELECT与UNION相加