我的代码很简单:
console.log("你好世界");
但是当我跑步时:
tsc 你好.ts
我没有得到任何控制台输出。
我还需要做些什么吗?
我将 Node.js 与 MongoDB 和 TypeScript 一起使用。
下面两行代码:
const ObjectID = require("mongodb").ObjectID;
const id = new ObjectID("5b681f5b61020f2d8ad4768d");
Run Code Online (Sandbox Code Playgroud)
编译没有错误。
但是当我将第二行更改为:
const id: ObjectID = new ObjectID("5b681f5b61020f2d8ad4768d");
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
找不到名称“ObjectID”
为什么ObjectID
在 TypeScript 中不被识别为类型?
我的 JSFiddle 在这里:
https://jsfiddle.net/h2kf5ztq/
我在很大程度上试图从以下方面复制 balexand 的答案:
包括,重要的是,CSS:
.tooltip-wrapper {
display: inline-block; /* display: block works as well */
margin: 50px; /* make some space so the tooltip is visible */
}
.tooltip-wrapper .btn[disabled] {
/* don't let button block mouse events from reaching wrapper */
pointer-events: none;
}
.tooltip-wrapper.disabled {
/* OPTIONAL pointer-events setting above blocks cursor setting, so set it here */
cursor: not-allowed;
}
Run Code Online (Sandbox Code Playgroud)
但出于某种原因,我禁用的按钮没有工具提示。
如何启用工具提示?
目前,我正在尝试以下操作:
const element = await page.$("#myElement");
const html = element.innerHTML;
Run Code Online (Sandbox Code Playgroud)
我期待打印 HTML,但我得到了undefined
.
我究竟做错了什么?
我目前有以下代码:
const pattern = "quick";
const re = new RegExp(pattern, "gi");
const string = "The quick brown fox jumped over the lazy QUICK dog";
const replaced = string.replace(pattern, "<b>" + pattern + "</b>");
console.log(replaced);
Run Code Online (Sandbox Code Playgroud)
它产生以下内容:
The <b>quick</b> brown fox jumped over the lazy QUICK dog
Run Code Online (Sandbox Code Playgroud)
我想要的是:
The <b>quick</b> brown fox jumped over the lazy <b>QUICK</b> dog
Run Code Online (Sandbox Code Playgroud)
我有两个问题。
首先,为什么QUICK
我不区分大小写的正则表达式不被替换?
其次,我如何确保QUICK
用<b>QUICK</b>
和代替<b>quick</b>
?
在下面的代码中:
new Vue({
el: '#app',
computed: {
myMessage: function() {
return "hello";
}
},
data: {
message: this.myMessage
},
mounted: function() {
console.log(this.myMessage);
}
})
Run Code Online (Sandbox Code Playgroud)
<script src="https://unpkg.com/vue"></script>
<div id="app">
<p>{{ message }}</p>
</div>
Run Code Online (Sandbox Code Playgroud)
https://jsfiddle.net/hk49eL38/
如果我替换:
this.myMessage
使用字符串(例如“ Hello world”),则可以正确呈现。
但是当我使用时this.myMessage
,不会显示任何文本。
为什么是这样?
我的 .gitignore 有以下内容:
./config.json
Run Code Online (Sandbox Code Playgroud)
但当我进行更改时,我的 config.json 仍在提交。
为什么会发生这种情况?
我的代码如下:
errorTest().then((result) => {
try {
console.log(result);
}
catch (err) {
console.error("Error detected 1");
console.error(err);
}
}).catch((err) => {
console.error("Error detected 2");
console.error(err);
});
async function errorTest() {
return new Promise((resolve, reject) => {
reject("my error");
})
}
Run Code Online (Sandbox Code Playgroud)
目前,它打印"检测到错误2".
我想使用try/catch捕获我的错误,以便代码打印"Error detected 1".
如何修改我的代码才能执行此操作?
我的代码如下:
$(function() {
$("table").on("click", function() {
const button = $(this);
});
});
Run Code Online (Sandbox Code Playgroud)
我的错误是:
this 隐式具有“any”类型,因为它没有类型注释。
我该如何修复这个错误?
编辑:
我的 tsconfig.json 如下:
{
"compilerOptions": {
"module": "commonjs",
"target": "es6",
"noImplicitAny": true,
"moduleResolution": "node",
"sourceMap": true,
"strict": true,
"outDir": "dist",
"baseUrl": ".",
"paths": {
"*": [
"node_modules/*",
"src/types/*"
]
}
},
"include": [
"src/**/*"
]
}
Run Code Online (Sandbox Code Playgroud)
编辑2:
我的 package.json 中有以下内容
"@types/jquery": "^2.0.41",
Run Code Online (Sandbox Code Playgroud) 假设我的代码如下:
const days = ['Monday', 'Tuesday'];
for (const day of days) {
console.log(day);
}
Run Code Online (Sandbox Code Playgroud)
打印出"周一"和"周二".
如果由于某种原因,days
未定义,那么我会收到运行时错误.
我可以通过输入如下代码来处理这个问题:
if (undefined == days) {
// logic here
}
Run Code Online (Sandbox Code Playgroud)
对我来说,这看起来有点笨重.有没有办法让for ... of
循环忽略未定义的值?基本上,将它视为零长度数组,因此for循环内部的逻辑不会执行,但它也不会抛出错误.