小编Bra*_*don的帖子

shims-tsx.d.ts文件在Vue-Typescript项目中做什么?

使用打字稿创建Vue项目时,包含两个声明文件:shims-vue.d.tsshims.tsx.d.ts

//shims-vue.d.ts

declare module "*.vue" {
  import Vue from 'vue';
  export default Vue;
}
Run Code Online (Sandbox Code Playgroud)

和:

//shims-tsx.d.ts

import Vue, { VNode } from 'vue';

declare global {
  namespace JSX {
    // tslint:disable no-empty-interface
    interface Element extends VNode {}
    // tslint:disable no-empty-interface
    interface ElementClass extends Vue {}
    interface IntrinsicElements {
      [elem: string]: any;
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

在创建一个小项目(没有Vue CLI)时,我忘记包含第二个项目(shims.tsx.d.ts),并且我的项目可以编译并按预期运行(没有错误)。

我发现了与此相关的帖子:https : //github.com/vuejs/vue-cli/issues/1198,但希望进行更多说明。

我很好奇这个文件的作用以及为什么包含它?换句话说,如果我不包括此声明文件,我将不得不“破坏”我的应用程序。

谢谢!

typescript vue.js

14
推荐指数
2
解决办法
3289
查看次数

(为什么)我会在项目中同时使用 .editorconfig 文件和 VS 代码工作区设置?

假设我只使用 VS Code 作为编辑器,如果我已经保存了工作区设置,那么在项目中包含 .editorconfig 文件是否有优势。或者,一个缺点:例如 .editorconfig 可能会覆盖我的 VS Code 设置,反之亦然?

visual-studio-code editorconfig

7
推荐指数
2
解决办法
2698
查看次数

如果是 Web API,为什么 console.log 似乎没有进入事件队列?

大多数解释浏览器中 JavaScript 并发模型的示例都列出了三个部分:调用堆栈、Web API 和事件队列。通常描述的正常过程是 Web API 不由核心 ECMAScript 处理,而是由 Web API 处理;此时它们会移入事件队列等待,直到调用堆栈为空才能执行。setTimeout通常用作此过程的示例。

我的问题是:

1.)既然console.log是一个Web API,为什么它不进入setTimeout后面的事件队列?(它是否进入事件队列)?

2.) 如果它不进入事件队列,那么什么决定了哪些 API 从调用堆栈中拉出以经历事件循环过程?是不是只有那些等待某些东西并且有回调的API?

setTimeout(function(){
  doSomething();
},0);

console.log('Hello World!');
Run Code Online (Sandbox Code Playgroud)

javascript v8 event-loop ecmascript-6

6
推荐指数
0
解决办法
1545
查看次数