当前位置: 首页 > 知识库问答 >
问题:

"TS2339:与汇总捆绑时,属性'XX'在类型'Vue'上不存在

长孙承嗣
2023-03-14

我有一个Vue/TypeScript类,它在另一个Vue/TypeScript类上调用公共方法。它与tsc或WebPack一起编译并运行良好。但是当使用rollup和rollup插件vue进行编译时,我得到一个错误,即类型“vue”上不存在属性“close”

复制链接:https://repl.it/@orobert91/PropertyDoesNotExistOnTypeVue

爆米花。vue:

import { Component } from "vue-property-decorator";
import Vue from "vue";

@Component
export default class Popover extends Vue {
    public close() {
        this.isShown = false;
    }
}

日期选择器。vue:

import Popover from "components/commonControls/Popover.vue";
import { Component } from "vue-property-decorator";
import Vue from "vue";

@Component
export default class DatePicker extends Vue {

    public $refs!: {
        popover: Popover
    }

    public get myMethod() {
        this.$refs.popover.close(); //COMPILATION ERROR HERE
    }
}

tsconfig。json配置文件:

{
    "compilerOptions": {
        "noImplicitAny": true,
        "module": "es6",
        "target": "es6",
        "jsx": "react",
        "jsxFactory": "h",
        "strict": true,
        "experimentalDecorators": true,
        "esModuleInterop": true,
        "moduleResolution": "node",
        "declaration": true,
        "declarationDir": "./dist",
        "baseUrl": "./src",
        "outDir": "./dist",
        "plugins": [
            { "transform": "typescript-transform-paths" },
            { "transform": "typescript-transform-paths", "afterDeclarations": true }
        ]
    },
    "include": [
        "src/**/*"
    ],
    "exclude": [
        "node_modules",
        "dist"
    ]
}

rollup.config.js配置文件:

import vue from 'rollup-plugin-vue';
import resolve from 'rollup-plugin-node-resolve';
import cleaner from 'rollup-plugin-cleaner';
import copy from 'rollup-plugin-copy';
import ttypescript from 'ttypescript'
import tsPlugin from 'rollup-plugin-typescript2'

export default {
    input: 'src/index.ts',
    output: {
        format: 'esm',
        file: 'dist/index.js'
    },
    external: ['vue'],
    plugins: [
        resolve(),
        tsPlugin({
            typescript: ttypescript
        }),
        vue(),
        cleaner({
            targets: [
                './dist/'
            ]
        }),
        copy({
            targets: [
              { src: 'src/laravel-mix', dest: 'dist/' },
            ]
        })
    ]
};

共有1个答案

秦景福
2023-03-14
匿名用户

我认为您可能有这个问题,因为您没有在您的D组件中注册Popover组件atepicker.vue

此外,出现错误的另一个可能原因可能是,您正在使用下面的代码片段来告诉typescript在使用此代码时不要抛出错误$裁判。爆米花。

 public $refs!: {
   popover: Popover
 }

 类似资料:
  • 问题内容: 我有一个非常基本的与tsx交互的程序,我收到一个错误,我无法弄清为什么 git 将此代码克隆 问题答案: 拉下您的存储库并进行检查后,我意识到您没有打字稿的反应类型。 键入是管理和安装TypeScript定义的简单方法 添加这行 并再次运行一次即可解决该问题。尝试一下,让我知道这是否可以解决您的问题:) PS:TypeScript要求您描述对象和数据的形状。如果您查看我之前提供的其他答

  • 不过,当我尝试使用firebase数据库时,我做了一个const来获取firebase数据库中的现有房间。get()在线:const roomRef=await database。ref()。get(); 它报告以下错误:D:/react/app/letmeask/src/pages/Home中的TypeScript错误。tsx(35,65):类型“Reference”上不存在属性“get”。TS

  • 问题内容: 我在下面的代码块上收到此错误。 我还发现了表明存在功能的链接。 http://definitelytyped.org/docs/typescript-services-- typescriptServices/classes/typescript.stringutilities.html 我会错过一些文件吗? 问题答案: 是ES6函数,因此您需要以TypeScript编译器设置为目标,

  • 我正在开发一个基于Firabase实时数据库的离子应用程序。当尝试启动应用程序时,im会收到此错误消息。 [ng]src/app/data-service.service.ts(14,36)中出现错误:错误TS2339:类型“{apikey:String;authDomain:String;databaseUrl:String;ProjectId:String;StorageBucket:Stri

  • 我试图按照一个教程来学习react-in-type脚本。然而,当我构建我的解决方案时,我会发现错误。密码 我得到的错误 我遵循以下教程https://www.youtube.com/watch?v=bYFYF2GnMy8 . 任何帮助或指导都将不胜感激

  • 我使用的是完全修补过的Visual Studio 2013。我正在尝试使用JQuery、JQueryUI和JSRender。我也在尝试使用打字。在ts文件中,我得到如下错误: 类型“{}”上不存在属性“fade div”。