当我尝试在 Visual Code Studio 上运行“ts-node index.ts”等代码时,它显示错误消息
/usr/local/lib/node_modules/ts-node/src/index.ts:857 const DiagnosticText = formatDiagnostics(诊断,diagnosticsHost); 类型错误:formatDiagnostics 不是函数 在 createTSError (/usr/loc...
自动完成功能不适用于 VSCode 中的 TypeScript + Node
所以如果我编写纯 JS (.js),它的工作方式如下: 但对于 TypeScript (.ts) 它不起作用:
typescript .d.ts 文件无法被 typescript 识别,但 vsc
更新: 它不是打字稿,而是 ts-node“问题” 我回答自己,所以如果你仍然对这个“问题”感兴趣 - 进一步阅读:) 对困惑感到抱歉 也许我完全有
// @ts-ignore 注释使 TypeScript 编译器能够忽略其下面的行。 如何使用 TypeScript 忽略一整段代码?
大家好我正在将我的 vue3 项目从 js 迁移到 typescript,我遇到了这个问题: 这是我在 .vue 文件中的代码 const toto = (msg: string) => { </desc> <question vote="7"> <p>大家好,我正在将我的 vue3 项目从 js 迁移到 typescript,我遇到了这个问题:</p> <p><a href="https://i.stack.imgur.com/y5tG8.png" target="_blank"><img src="https://cdn.txt58.com/i/AWkuc3RhY2suaW1ndXIuY29tL3k1dEc4LnBuZw==" alt=""/></a></p> <p>这是我在 .vue 文件中的代码</p> <pre><code><script setup lang="ts"> const toto = (msg: string) => { console.log(msg) } </script> </code></pre> <p>这是我的 eslintrc.js</p> <pre><code>module.exports = { 'env': { 'browser': true, 'es2021': true }, 'extends': [ 'eslint:recommended', 'plugin:vue/vue3-essential' ], 'parserOptions': { 'ecmaVersion': 13, 'sourceType': 'module' }, 'plugins': [ 'vue' ], 'rules': { 'vue/multi-word-component-names': 'off', 'vue/object-curly-spacing': [2, 'always'], 'vue/html-closing-bracket-spacing': [2, { 'selfClosingTag': 'always' }], 'vue/max-attributes-per-line': [2, { 'singleline': { 'max': 1 }, 'multiline': { 'max': 1 } }], 'semi': [2, 'never'] } } </code></pre> </question> <answer tick="true" vote="10"> <p>您需要配置 eslint 以支持 typescript,因为 eslint 不支持开箱即用。 首先,您需要安装<a href="https://www.npmjs.com/package/@typescript-eslint/parser" rel="nofollow noreferrer">@typescript-eslint/parser</a>,然后安装<a href="https://www.npmjs.com/package/@typescript-eslint/eslint-plugin" rel="nofollow noreferrer">@typescript-eslint/eslint-plugin</a>。 安装完这些后,请按如下方式更新您的配置 - </p> <pre><code>module.exports = { 'env': { 'browser': true, 'es2021': true, node: true }, 'extends': [ 'eslint:recommended', 'plugin:vue/vue3-essential' ], 'parserOptions': { 'ecmaVersion': 12, 'sourceType': 'module', parser: '@typescript-eslint/parser' }, 'plugins': [ 'vue', '@typescript-eslint' ], 'rules': { 'vue/multi-word-component-names': 'off', 'vue/object-curly-spacing': [2, 'always'], 'vue/html-closing-bracket-spacing': [2, { 'selfClosingTag': 'always' }], 'vue/max-attributes-per-line': [2, { 'singleline': { 'max': 1 }, 'multiline': { 'max': 1 } }], 'semi': [2, 'never'] } } </code></pre> </answer> <answer tick="false" vote="1"> <p>就我而言,问题是我使用解析器选项作为数组,而不是字符串:</p> <pre><code> parserOptions: { - parser: ['@typescript-eslint/parser'], + parser: '@typescript-eslint/parser', }, </code></pre> </answer> <answer tick="false" vote="0"> <p>如果你在项目中同时使用 JS 和 TS,此配置有帮助</p> <pre><code> overrides: [ { files: ['*.vue'], parser: 'svelte-eslint-parser', parserOptions: { parser: { // Specify a parser for each lang. ts: '@typescript-eslint/parser', js: 'espree', typescript: '@typescript-eslint/parser' } } } ], </code></pre> </answer> <answer tick="false" vote="-1"> <p>我在节点 v12.22.9 上遇到了这个问题。通过升级到 v14.21.2,我不再遇到解析错误。您可以使用命令升级/安装</p> <pre><code>nvm install v14.21.2 </code></pre> </answer> </body></html>
我的 VS CODE 屏幕截图 代码是正确的,没有错误。我已经安装了最新版本的 Node js,并且没有更新显示 Node Index.js 仍然没有在术语中运行...
我阅读了一些 Docker 和 Node.js 最佳实践文章,例如https://github.com/nodejs/docker-node/blob/main/docs/BestPractices.md 或使用
我有这个curl命令,我需要在node js中编写: 卷曲-X POST \ https://image.adobe.io/pie/psdService/renditionCreate \ -H“授权:不记名$令牌”\ -H“x-api-...
[NullInjectorError]:R3InjectorError(独立[_AppComponent])[]:NullInjectorError:没有_HttpClient的提供者
app.module.ts 应用程序模块.ts 应用程序模块.ts 错误 包.json 我的代码已迁移到角度独立 我不知道我做错了什么。我是否必须在其他地方导入或提供 HttpClient...
Node Sass 版本 9.0.0 与 ^4.0.0 不兼容
我的应用程序中没有安装node-sass或sass包。但我一直收到这个错误 ./src/scss/styles.scss 中的错误(./node_modules/@angular-devkit/build-angular/src/angular-cli-files/plu...
在arm64 M1 CPU上构建'node-canvas'时出错
我在配备 M1 CPU 的 Mac 上遇到以下错误: 我无法使用“node-canvas”npm 包构建 nodejs 应用程序,因为错误:dlopen(/Users/..../node_modules/canvas/build/Release/canvas.node,
信息:node_modules/node-expose-sspi/dist/sso/client.d.ts:3:8 - 错误 TS1192:模块“http”没有默认导出。 在我安装了node-expose-sspi之后,然后编译了Angular项目(v...
Node Express.js 应用程序在本地运行良好,但在 Docker 中显示“无法获取/”
我在 Node 应用程序中定义了一个 Express.js 服务器,如下所示: const express = require('express') const SignRequest = require('./SignRequest/lambda/index.js') const VerifyResponse = require('./
使用 Node Express 托管网站无法与 Windows 任务计划程序一起使用
我编写了一个简单的网站,并使用 Node Express 托管它。 const express = require('express') 常量应用程序 = Express() app.use(express.static('./')) app.listen(7100, () => { console.log('开始'...
node/nodemon 中是否有对 typescript 的源映射支持?
我有一个用 typescript@2 编写的节点项目。 我的 tsconfig 将 sourceMap 设置为 true 并生成 *.map.js 文件。当我通过 node 或 nodemon 执行转译的 *.js JavaScript 文件时,我...
存在于松果.ts 中 从 '@pinecone-database/pinecone' 导入 { PineconeClient } 导出 const getPineconeClient = async () => { const client = new PineconeClient() 等待客户。
从 'react' 导入 React, { useEffect, useRef, useState }; // eslint-disable-line import/no-webpack-loader-syntax // @ts-忽略 从'!mapbox-gl'导入mapboxgl; 导入'mapbox-gl/dist/mapbox-gl....
在使用 Express 的 Node app.js 之后,控制台未显示“服务器启动”
当我在终端上插入 Node app.js 时,我没有在控制台上收到启动服务器:3001 消息。 我的 app.js 文件内容: var createError = require('http-errors'); var express = require('express'); 变量路径 =
在 Docker 中的 Ubuntu 上安装最新版本 Node (v20) 的说明不起作用?
我只是按照说明在 Ubuntu 上的 docker 中安装了最新版本的 Node (v20),在我的 Dockerfile 中包含以下内容: 来自 --platform=linux/amd64 ubuntu:22.04 运行 apt-get update 运行 apt-get...
在 knex 查询中的 ts 泛型中显示错误 [symbol.iterator()]
const [用户]: T = wait db("users").select("*").returning("*"); // 错误:类型“T”必须具有返回迭代器的“[Symbol.iterator]()”方法。 我的膝盖查询
如果我有一个名为 ts 的 pandas.core.series.Series ,其中 1 或 NaN 如下: 第3382章 第3381章 ... 第3369章 第3368章 ... 15 1 10 南 11 1 12 1 13 1 9 南 8 南 ...
为什么ElasticSearch将主分片和副本分片放在同一主机上?
这是添加到现有集群测试中的新主机,触发了重新平衡过程。 两个节点node-5、node-6位于新物理主机中。 对于每个分片,只有一个主分片...
当我使用 vscode 时收到此消息: 路径 ... ode_modules ypescript\lib 未指向有效的 tsserver 安装。 我不知道出了什么问题。有任何想法吗? ts配置: { ”
为什么ElasticSearch将主分片和副本分片放在同一主机上?
这是添加到现有集群测试中的新主机,触发了重新平衡过程。 两个节点node-5、node-6位于新主机中。 对于每个分片,只有一个主分片和一个
请帮助我。这是我下面关于discord.js 聊天机器人的代码 const fetch = require("node-fetch"); const {ChannelType} = require("discord.js"); client.on('messageCreate...
有人可以帮助我吗 我有 2 个文件 main.ts 和 hi.ts 命中: 导出常量你好=“dd”; 主要.ts: 从“./hi”导入{hello}; ... A类{ 公共说你好(){ 控制台.log(“...
router.navigate 不起作用,页面未重定向到查看器页面。但是如果我在最后一行添加断点,就可以了。 TS: 异步 onApprove(): Promise { if (this.status === true...
运行 Prettier 时出现问题:退出代码 2 和意外标记“:”
每次我尝试提交或运行yarn format(使用此脚本:“format”:“prettier --config \”packages/**/*。{ts,tsx} \“”)或运行make fmt,我收到以下错误
在TypeScript中,有truthy的类型吗? 我有这个方法: Object.keys(lck.lockholders).length; 入队(k:任何,obj?:任何):无效 我认为使用 TS 有一种方法可以检查空字符串'...
相当于 @typescript-eslint 中的 noUnusedParameters
我正在努力改善React+TS项目的开发者体验。我发现 noUnusedLocals 和 noUnusedParameters 对于该项目非常有用,但这些规则使开发变得复杂,尤其是......
在 Angular 应用程序中调整画布元素大小时如何解决闪烁问题
我有一个带有画布的 Angular 组件,如下所示: 在 .ts 文件中,我设置了一个变量来访问...
假设我们有要转换的 XML: 测试 / 假设我们有要转换的 XML: <?xml version="1.0" encoding="UTF-8"?> <node> <field1>test</field1> <field2>/</field2> <field3>test2</field3> <field4>/<field4> </node> 我想使用 XSLT 1.0 对其进行转换,以便复制整个结构和所有值,除了具有值“/”的元素。 到目前为止,我已经找到了这个,我认为这离我需要的并不遥远,但它还没有工作。 <xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:strip-space elements="*"/> <xsl:output indent="yes"/> <xsl:template match="@*|node()"> <xsl:copy> <xsl:apply-templates select="@*|node()"/> </xsl:copy> </xsl:template> <xsl:template match="//text()='/'" /> </xsl:transform> 所以我期望的输出是这样的: <?xml version="1.0" encoding="UTF-8"?> <node> <field1>test</field1> <field3>test2</field3> </node> 尝试此操作时,我收到未指定的错误(因为我正在使用免费的在线工具进行转换)。 //text()='/' 不是有效的位置路径。 在任何情况下,您想要删除元素,而不是文本节点 - 所以您应该使用类似的东西: <xsl:template match="*[.='/']" />
我运行了 nvm ls-remote ,列表的末尾如下所示: v14.17.6(LTS:镄) v14.18.0(LTS:镄) v14.18.1(LTS:镄) v14.18.2(LTS:镄) ...
我需要帮助更新 Mac 上的 Node 版本才能使用 Next JS,即使已安装,我仍然收到错误消息
我正在创建一个新的 NextJS 应用程序,它说它需要较新版本的 Node >= v18.17.0 才能与 Next JS 一起使用。我一直在尝试更新,但它说活动节点版本是
我正在尝试在 ts 文件中包含路径,尝试了 stackoverflow 上可能提供的解决方案,但没有一个对我有用 tsconfig.json { “编译器选项”:{ “严格”:真实, ”
为什么 @typescript-eslint/no-redeclare 规则指示误报?
我有一个 typescript 项目,其中通过 eslint 和 typescript-eslint 支持 linting。 请注意,这只是一个最小的工作示例。 这是一个repl链接 索引.ts 函数 testfn(值:...
`类型“VNode”缺少类型“HTMLElement”中的以下属性:accessKey、accessKeyLabel、autocapitalize、dir 以及其他 283 个属性。 > 导入 { init, classModule, propsModule, styleModule,
我正在安装这些 npm 软件包: npm 我表达 body-parser bcrypt cors dotenv gridfs-stream multer multer-gridfs-storage 头盔 morgan jsonwebtoken mongoose 但是,当...
我是角度可重用组件的新手,不确定构建后如何重用该组件。我有 3 个组件父组件、容器组件和可重用组件。 父组件.ts 可重复使用...
这是我在 Tabs 组件中使用 VUE 2 的旧代码: 创建(){ this.tabs = this.$children; } 标签: .... 这是我在 Tabs 组件中使用 VUE 2 的旧代码: created() { this.tabs = this.$children; } 标签: <Tabs> <Tab title="tab title"> .... </Tab> <Tab title="tab title"> .... </Tab> </Tabs> VUE 3: 如何使用组合 API 获取有关 Tabs 组件中子项的一些信息?获取长度,迭代它们,并创建选项卡标题,...等?有任何想法吗? (使用组合API) 这是我现在的 Vue 3 组件。我使用 Provide 来获取子 Tab 组件中的信息。 <template> <div class="tabs"> <div class="tabs-header"> <div v-for="(tab, index) in tabs" :key="index" @click="selectTab(index)" :class="{'tab-selected': index === selectedIndex}" class="tab" > {{ tab.props.title }} </div> </div> <slot></slot> </div> </template> <script lang="ts"> import {defineComponent, reactive, provide, onMounted, onBeforeMount, toRefs, VNode} from "vue"; interface TabProps { title: string; } export default defineComponent({ name: "Tabs", setup(_, {slots}) { const state = reactive({ selectedIndex: 0, tabs: [] as VNode<TabProps>[], count: 0 }); provide("TabsProvider", state); const selectTab = (i: number) => { state.selectedIndex = i; }; onBeforeMount(() => { if (slots.default) { state.tabs = slots.default().filter((child) => child.type.name === "Tab"); } }); onMounted(() => { selectTab(0); }); return {...toRefs(state), selectTab}; } }); </script> 选项卡组件: <script lang="ts"> export default defineComponent({ name: "Tab", setup() { const index = ref(0); const isActive = ref(false); const tabs = inject("TabsProvider"); watch( () => tabs.selectedIndex, () => { isActive.value = index.value === tabs.selectedIndex; } ); onBeforeMount(() => { index.value = tabs.count; tabs.count++; isActive.value = index.value === tabs.selectedIndex; }); return {index, isActive}; } }); </script> <template> <div class="tab" v-show="isActive"> <slot></slot> </div> </template> 哦伙计们,我解决了: this.$slots.default().filter(child => child.type.name === 'Tab') 对于想要完整代码的人: 标签.vue <template> <div> <div class="tabs"> <ul> <li v-for="tab in tabs" :class="{ 'is-active': tab.isActive }"> <a :href="tab.href" @click="selectTab(tab)">{{ tab.name }}</a> </li> </ul> </div> <div class="tabs-details"> <slot></slot> </div> </div> </template> <script> export default { name: "Tabs", data() { return {tabs: [] }; }, created() { }, methods: { selectTab(selectedTab) { this.tabs.forEach(tab => { tab.isActive = (tab.name == selectedTab.name); }); } } } </script> <style scoped> </style> 标签.vue <template> <div v-show="isActive"><slot></slot></div> </template> <script> export default { name: "Tab", props: { name: { required: true }, selected: { default: false} }, data() { return { isActive: false }; }, computed: { href() { return '#' + this.name.toLowerCase().replace(/ /g, '-'); } }, mounted() { this.isActive = this.selected; }, created() { this.$parent.tabs.push(this); }, } </script> <style scoped> </style> 应用程序.js <template> <Tabs> <Tab :selected="true" :name="'a'"> aa </Tab> <Tab :name="'b'"> bb </Tab> <Tab :name="'c'"> cc </Tab> </Tabs> <template/> 我扫描子元素的解决方案(在对 vue 代码进行大量筛选之后)是这样的。 export function findChildren(parent, matcher) { const found = []; const root = parent.$.subTree; walk(root, child => { if (!matcher || matcher.test(child.$options.name)) { found.push(child); } }); return found; } function walk(vnode, cb) { if (!vnode) return; if (vnode.component) { const proxy = vnode.component.proxy; if (proxy) cb(vnode.component.proxy); walk(vnode.component.subTree, cb); } else if (vnode.shapeFlag & 16) { const vnodes = vnode.children; for (let i = 0; i < vnodes.length; i++) { walk(vnodes[i], cb); } } } 这将返回子组件。我对此的用途是我有一些通用的对话框处理代码,用于搜索子表单元素组件以咨询其有效性状态。 const found = findChildren(this, /^(OSelect|OInput|OInputitems)$/); const invalid = found.filter(input => !input.checkHtml5Validity()); 如果你复制粘贴与我相同的代码 然后只需向“选项卡”组件添加一个创建的方法,该方法将自身添加到其父级的选项卡数组中 created() { this.$parent.tabs.push(this); }, 使用脚本设置语法,您可以使用useSlots:https://vuejs.org/api/sfc-script-setup.html#useslots-useattrs <script setup> import { useSlots, ref, computed } from 'vue'; const props = defineProps({ perPage: { type: Number, required: true, }, }); const slots = useSlots(); const amountToShow = ref(props.perPage); const totalChildrenCount = computed(() => slots.default()[0].children.length); const childrenToShow = computed(() => slots.default()[0].children.slice(0, amountToShow.value)); </script> <template> <component :is="child" v-for="(child, index) in childrenToShow" :key="`show-more-${child.key}-${index}`" ></component> </template> 我对 Ingrid Oberbüchler 的组件做了一个小改进,因为它不支持热重载/动态选项卡。 在 Tab.vue 中: onBeforeMount(() => { // ... }) onBeforeUnmount(() => { tabs.count-- }) 在 Tabs.vue 中: const selectTab = // ... // ... watch( () => state.count, () => { if (slots.default) { state.tabs = slots.default().filter((child) => child.type.name === "Tab") } } ) 我也遇到了同样的问题,在做了很多研究并问自己为什么他们删除了$children之后,我发现他们创建了一个更好、更优雅的替代方案。 这是关于动态组件的。 (<component: is =" currentTabComponent "> </component>). 我在这里找到的信息: https://v3.vuejs.org/guide/component-basics.html#dynamic-components 希望这对你有用,向大家问好!! 我发现这个更新的 Vue3 教程使用 Vue 插槽构建可重用的选项卡组件对于与我相关的解释非常有帮助。 它使用 ref、provide 和ject 来替换我遇到同样问题的this.tabs = this.$children;。 我一直在遵循我最初发现的构建选项卡组件(Vue2)的教程的早期版本创建您自己的可重用 Vue 选项卡组件。 根据 Vue 文档,假设您在 Tabs 组件下有一个默认插槽,您可以直接在模板中访问该插槽的子级,如下所示: // Tabs component <template> <div v-if="$slots && $slots.default && $slots.default()[0]" class="tabs-container"> <button v-for="(tab, index) in getTabs($slots.default()[0].children)" :key="index" :class="{ active: modelValue === index }" @click="$emit('update:model-value', index)" > <span> {{ tab.props.title }} </span> </button> </div> <slot></slot> </template> <script setup> defineProps({ modelValue: Number }) defineEmits(['update:model-value']) const getTabs = tabs => { if (Array.isArray(tabs)) { return tabs.filter(tab => tab.type.name === 'Tab') } else { return [] } </script> <style> ... </style> 并且 Tab 组件可能类似于: // Tab component <template> <div v-show="active"> <slot></slot> </div> </template> <script> export default { name: 'Tab' } </script> <script setup> defineProps({ active: Boolean, title: String }) </script> 实现应类似于以下内容(考虑一组对象,每个部分一个,带有 title 和 component): ... <tabs v-model="active"> <tab v-for="(section, index) in sections" :key="index" :title="section.title" :active="index === active" > <component :is="section.component" ></component> </app-tab> </app-tabs> ... <script setup> import { ref } from 'vue' const active = ref(0) </script> 另一种方法是使用 useSlots,如 Vue 文档(上面的链接)中所述。 在 3.x 中,$children 属性已被删除并且不再受支持。相反,如果您需要访问子组件实例,他们建议使用 $refs。作为数组 https://v3-migration.vuejs.org/writing-changes/children.html#_2-x-syntax 在 3.x 版本中,$children 已被删除且不再受支持。使用 ref 访问子实例。 <script setup> import { ref, onMounted } from 'vue' import ChildComponent from './ChildComponent .vue' const child = ref(null) onMounted(() => { console.log(child.value) // log an instance of <Child /> }) </script> <template> <ChildComponent ref="child" /> </template> 详细信息:https://vuejs.org/guide/essentials/template-refs.html#template-refs 基于@Urkle的回答: /** * walks a node down * @param vnode * @param cb */ export function walk(vnode, cb) { if (!vnode) return; if (vnode.component) { const proxy = vnode.component.proxy; if (proxy) cb(vnode.component.proxy); walk(vnode.component.subTree, cb); } else if (vnode.shapeFlag & 16) { const vnodes = vnode.children; for (let i = 0; i < vnodes.length; i++) { walk(vnodes[i], cb); } } } 除了已接受的答案之外: 而不是 this.$root.$children.forEach(component => {}) 写 walk(this.$root, component => {}) 这就是我让它为我工作的方式。
在 Electron-vite 中包含本地 JavaScript 库的 TypeScript 无法正确编译
我正在尝试将本地库导入到 vite-electron TypeScript 项目中。请原谅我对 vite-electron 和 JS 捆绑生态系统缺乏了解,我是 JS 和 TS 开发的新手......
我有三个时间序列变量。其中两个包含在我的文件 roes.cvs 中,并使用以下代码绘制在一张图中: 鱼子 <- read.csv(file="roes.csv", header=TRUE, sep=",&q...
我在这里寻找规范的答案。 如果我有一个如下所示的应用程序: const {getHeapStatistics} = require("v8"); console.log(getHeapStatistics()) 我得到: { 总堆...
我想知道我们根据输入数据预测模型的条件 可以根据输入数据自动预测模型(时间序列、回归、分类)。 任何李...
我有一个 C# Web api,它将公钥传递给 React 应用程序。我需要使用该公钥来加密有效负载/消息,然后将其发送回我的 api。但是,我在重建时遇到了麻烦...
在 ec2 中安装节点,Amazon Linux2 错误 glibc >= 2.28
尝试在以下位置安装 npm 和 node: 猫 /etc/os-release 名称=“亚马逊Linux” 版本=“2” ID=“amzn” ID_LIKE="centos rhel fedora" 版本_ID=“2” 漂亮...
使用 `keyof typeof enum` 作为函数的参数
我遇到过这个问题,我似乎无法在 TS 中弄清楚。如果有人能指出我正确的方向,我会很高兴。我有一个返回一系列枚举值的 API,并且按顺序...
我正在为我的 vscode 扩展构建我的 webview 应用程序(使用 vue3 + typescript)。 当我尝试在这个 webview 应用程序中使用 vscode api 时,例如 window.vscode.postMessage(data),ts-plugin 会抛出错误...
Cucumber with playwright 无法识别 ES2022 模块配置中的 .TS 文件
我正在尝试以这种方式通过剧作家测试来实现黄瓜: 有一个 cucumber.cjs 文件,它将成为我的跑步者 有测试 > 验收 > 功能 > {这里是所有 .features 文件} 有...
我正在从 React 路由器切换到 tanstack 路由器。 基于文件的路由以及此文件夹结构的使用是目标: 源代码/ 主要.ts 路线/ __root.tsx 特征/ 索引.t...