我的代码如下
SELECT MIN(other.`Date`)
FROM (SELECT MAX(`Date`) AS mostRecent
FROM foo) AS mostRecent
JOIN foo
ON mostRecent.mostRecent = foo.`Date`
JOIN foo AS other
ON other.Country = foo.Country
WHERE other.`Date` >= COALESCE(
(SELECT MAX(`Date`)
FROM foo AS inside
WHERE inside.Country <> foo.Country)
,
(SELECT MIN(`Date`)
FROM foo AS i2
WHERE i2.Country = foo.Country)
)
为什么我能够在视图中显示名称并显示名称,前提是我已经为其提供了私有关键字
答案 0 :(得分:2)
如果您尝试:
class A {
private x: number;
}
let a = new A();
console.log(a.x);
您将收到编译错误:
财产&#39; x&#39;是私人的,只能在课堂上访问&#39; A&#39;
我怀疑(因为我不是一个有角度的开发人员)你之所以没有得到这个,是因为你在字符串中有hero1.name
因此打字稿编译器没有&将hero1
视为变量。
我敢打赌,如果你尝试:
let obj = new heross("name", "details");
console.log(`heross.name: ${ obj.name }`);
然后您将收到编译错误
区别在于${}
而不是{{}}
。
如果您不知道为什么可以在运行时访问它,那么因为javascript中没有可见性的概念,它没有通过编译器
角度double curly brace({{ }}
)之间存在差异:
用于将表达式绑定到元素的双花括号符号{{}} 是内置的Angular标记
你不需要加入刻度线,你可以使用常规的单/双引号。
javascript template literals(${ }
):
模板文字是允许嵌入表达式的字符串文字。 您可以使用多行字符串和字符串插值功能 他们。他们被称为&#34;模板字符串&#34;在以前的版本中 ES2015 / ES6规范
更简单:
let x = 4;
console.log(`x={{ x }}`); // outputs 'x={{ x }}'
console.log(`x=${ x }`); // outputs 'x=4'
答案 1 :(得分:1)
通常在TypeScript中强制实施隐私,但仅通过静态工具进行检查。
您可以将视图和组件类中的绑定视为一个单元,就像模板中的绑定是类实现的一部分一样。
使用离线模板编译器,我认为这实际上是如何组织生成的代码。
答案 2 :(得分:0)
因为它在一天结束时是javascript。 Javascript语言没有private
关键字。