我正在看一下AngularJS 2和Typescript,我决定用这个来学习一些打字稿的基础知识.通过许多研究,我找到了关于模块,Typescript的好主题,其中一个讨论了'let'和'var'命令来声明变量; 根据这个问题,下面的Typescript代码应该只显示一个警报并在控制台中抛出错误:
test.ts:
for(let i = 0; i < 1; i++) {
alert(i);
}
alert(i);
Run Code Online (Sandbox Code Playgroud)
编译test.js:
for(var i = 0; i < 1; i++) {
alert(i);
}
alert(i);
//# sourceMappingURL=test.js.map
Run Code Online (Sandbox Code Playgroud)
但事实并非如此.编译器"忽略""let"命令并将其转换为"var"命令.为什么会这样?Typescript只适用于类吗?
我正在使用AngularJS配置'npm start',因此它会自动编译我的'test.ts'文件:
"scripts": {
"start": "tsc && concurrently \"npm run tsc:w\" \"npm run lite\" ",
"lite": "lite-server",
"postinstall": "typings install",
"tsc": "tsc",
"tsc:w": "tsc -w",
"typings": "typings"
},
Run Code Online (Sandbox Code Playgroud) 为了使一个极端的总结,之间的差异var,并let是一个范围之内他们的生活.
(function() {
for (var i = 0; i < 5; i++) {
setTimeout(function() {
console.log(`i: ${i}`);
}, i * 100);
}
// 5, 5, 5, 5, 5
for (let j = 0; j < 5; j++) {
setTimeout(function() {
console.log(`j: ${j}`);
}, 1000 + j * 100);
}
// 0, 1, 2, 3, 4
}());Run Code Online (Sandbox Code Playgroud)
i(声明var)生活在整个function j(声明着let)仅存在于for循环内.对我来说,这意味着javascript,在每次迭代之后,除了声明和赋值给变量之外,let还需要执行额外的步骤:清理 …
我总是看到其他人生成如下代码:
var smtp = new SmtpClient();
但为什么要使用var而不是SmtpClient在这种情况下呢?我总是用
SmtpClient smtp = new SmtpClient();
是var更有效?为什么要使用var而不是实际的变量类型?我错过了什么吗?
我正在尝试将变量的名称作为字符串返回.
所以如果变量是var1,我想返回字符串"var1".
有什么方法可以做到这一点吗?我听说反思可能是正确的方向.
编辑:
我基本上试图使有组织的树视图的实现更简单.我有一个方法,你给两个字符串:rootName和subNodeText.rootName恰好是变量的名称.对此方法的调用来自此变量的with块内.我希望用户能够调用Method(.getVariableAsString,subNodeText)而不是Method("Variable",subNodeText).想要以编程方式获取它的原因是可以简单地复制和粘贴此代码.每次变量被命名为异常时,我都不想调整它.
Function aFunction()
Dim variable as Object '<- This isn't always "variable".
Dim someText as String = "Contents of the node"
With variable '<- Isn't always "variable". Could be "var", "v", "nonsense", etc
'I want to call this
Method(.GetName, someText)
'Not this
Method("Variable",someText)
End With
End Function
Run Code Online (Sandbox Code Playgroud) 有没有办法var在Visual Studio 2013代码编辑器中查看a的类型?
当我有一个疯狂的linq查询时,很高兴看到结果类型将是什么.我不想var用实际类型替换关键字,我只是想看看它是什么.
Swift中"static var"和"var"之间的主要区别是什么?有人可以用一个小例子来解释这个差异吗?
let/ const代替var以后进行维护?(这来自Airbnb风格指南)我正在尝试列出我的表单中的所有按钮名称以列出代码
var v = new List<Form1>() { this }.ForEach(x => { x.GetType().Name.Contains(typeof(Button).Name); });
Run Code Online (Sandbox Code Playgroud)
并总是得到错误
无法将void分配给隐式类型的局部变量
如何绕过那个?
在学习JavaScript的过程中,我了解到,Let和const引入来解决的问题Var就在全球范围内和提升,如果再声明不给错误.
现在我可以完全编写代码而不使用var吗?或者我现在应该知道它们并等到它们被广泛"接受"?
换句话说,如果我只使用let和,我暂时应该担心兼容性问题const吗?
我花了很多时间在 VSCodium 中为自定义 WordPress 主题编写 css。我使用 wp-cli 创建了脚本来自动化许多过程,因此我使用了大量自定义属性/变量,特别是颜色:前景、背景和渐变。
有没有办法让 VSCode/VSCodium 显示如下代码的颜色预览,就像color: red;or等关键字一样color: #ff0000?
:root {
--hue--1: 45;
--color--saturation: 1%;
--color--lightness: 1%;
--color--opacity: 1;
--color--dark: hsl(var(--hue--1)
calc(22 * var(--color--saturation))
calc(33 * var(--color--lightness))
calc(1 * var(--color--opacity))
);
--c1: [color preview square here]var(--color--dark);
}
Run Code Online (Sandbox Code Playgroud)
从一个主题跳到另一个主题,如果没有我已经习惯的颜色预览,很难保持 9 种颜色变体和 3 种渐变(这是深色的、浅色的、明亮饱和的还是柔和的?)
我尝试过各种扩展:CSS Variable Autocomplete、Colorize、TODO Hightlight 等。没有一个达到预期的效果。
var ×10
javascript ×4
let ×4
c# ×3
variables ×2
.net ×1
colors ×1
const ×1
css ×1
foreach ×1
lambda ×1
performance ×1
reflection ×1
scope ×1
static ×1
swift ×1
tostring ×1
typescript ×1
vb.net ×1