Ho un progetto vue con dattiloscritto e sto importando un tipo personalizzato che creo per il filtro vue-numeral , ma questo genera l'errore:
ERRORE in /Users/bmartins/Development/app-invest/src/main.ts(14,30): 14:30 Impossibile trovare un file di dichiarazione per il modulo 'vue-numeral-filter'. "/Users/bmartins/Development/app-invest/node_modules/vue-numeral-filter/dist/vue-numeral-filter.es.js" ha implicitamente un tipo "any". Prova
npm install @types/vue-numeral-filterse esiste o aggiungi un nuovo file di dichiarazione (.d.ts) contenentedeclare module 'vue-numeral-filter';
Sul mio file main.ts ho:
import Vue from 'vue';
import App from './App.vue';
import Vuetify from 'vuetify';
import vuetify from './plugins/vuetify';
import router from './router';
import VueApexCharts from 'vue-apexcharts';
import Vuex from 'vuex';
import store from './store';
import { mockStore } from './test/mock/store';
import * as moment from 'moment';
import 'moment/locale/pt-br';
import VueMoment from 'vue-moment';
import { API_URL, PRODUCT_TYPES } from './store/constants';
import VueNumeralFilter from 'vue-numeral-filter';
Vue.component('apexchart', VueApexCharts);
Vue.use(Vuetify);
Vue.use(Vuex);
Vue.use(VueNumeralFilter, { locale: 'pt-br' });
Vue.use(VueMoment, {
moment,
});
Per il tipo creo la struttura delle cartelle:
App
|_ src
|_ types
|_ vue-numeral-filter
|_ index.d.ts
Struttura delle cartelle
L'indice.d.ts che ho creato in base ai @ types / vue-moment :
import Numeral from 'numeral';
import { PluginObject } from 'vue';
declare namespace VueNumeralFilterPlugin {
interface Options {
// The optional (self-maintained) numeral instance
numeral?: Numeral;
}
interface VueStatic extends Numeral {
(inp?: Numeral, format?: string): string;
(inp?: Numeral): string;
}
}
declare module 'vue-numeral-filter' {
interface Vue {
$numeral: VueNumeralFilterPlugin.VueStatic;
}
}
type VueNumeralFilter = PluginObject<undefined>;
declare const VueNumeralFilter: VueNumeralFilter;
export = VueNumeralFilter;
E l'ultima parte stava cambiando il tsconfig.json:
{
"compilerOptions": {
"target": "esnext",
"module": "esnext",
"strict": true,
"jsx": "preserve",
"importHelpers": true,
"moduleResolution": "node",
"skipLibCheck": true,
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"sourceMap": true,
"baseUrl": ".",
"typeRoots": [
"./types"
],
"types": [
"webpack-env",
"vue-numeral-filter",
"vuetify-form-base"
],
"paths": {
"@/*": [
"src/*"
]
},
"lib": [
"esnext",
"dom",
"dom.iterable",
"scripthost"
]
},
"include": [
"src/**/*.ts",
"src/**/*.tsx",
"src/**/*.vue",
"tests/**/*.ts",
"tests/**/*.tsx"
],
"exclude": [
"node_modules"
]
}
Ho letto questo post TypeScript 2: digitazioni personalizzate per il modulo npm non tipizzato , più volte che ha una spiegazione sorprendente ma non ho ancora capito come risolverlo ...
Qualsiasi aiuto?
I file di definizione del tipo possono essere un po 'complicati in Typescript. È molto facile finire per scrivere qualcosa che TypeScript interpreta come un modulo invece di un file di dichiarazione. Quando ciò accade, TypeScript inizia a aspettarsi che importi i tipi direttamente dal file, invece di riconoscere la dichiarazione del tipo incorporata.
Mi sembra che il tuo file di definizione del tipo non sia corretto. In particolare, hai messaggi importfuori dalla dichiarazione del modulo, che è uno dei flag che TypeScript riconosce come un marcatore del modulo. Se sposti i tuoi messaggi in importmodo che siano all'interno del declare { ... }blocco, penso che inizierà a funzionare.
In una nota diversa, penso che le voci typeRootse typesnel tuo tsconfig.jsonfile siano eccessivamente restrittive. Non penso che sia questa la causa del problema qui, ma penso che dovresti rimuoverli altrimenti avrai problemi con l'installazione di tipi di terze parti in futuro.
Jana Duggar è stata aperta sulla sua ricerca dell'amore. Ecco tutto ciò che ha detto sull'argomento e sulla sua finestra di cinque anni per il matrimonio.
La star di 'Outlander' Sam Heughan ha recentemente rivelato cosa prenderà dal set per ricordare Jamie Fraser, il ruolo che lo ha reso una star.
"She Loves You" è stata scritta in un'ora, registrata in un giorno ed è stata la canzone dei Beatles con una delle loro migliori performance della loro carriera.
Dolly Parton e sua nonna Bessie avevano un rapporto speciale. Nonna Parton era molto malata, ma questo non ha impedito a Dolly di farle uno scherzo.
Si potrebbe pensare che la quercia o il noce americano siano resistenti, ma quando si tratta del legno più duro del mondo, non si avvicinano nemmeno.
L'oceano è pieno di bellezza, ma nasconde anche alcune delle creature marine più spaventose del pianeta. Molti di questi animali si nascondono molto al di sotto della superficie dell'oceano, nel mondo oscuro e ad alta pressione delle profondità marine.
Se stai combattendo contro nemici ostili o ti stai preparando per scenari PvP, conoscere i migliori incantesimi per le spade offerti da Minecraft può darti un vantaggio notevole. Incantare le spade ti permette di infliggere più danni, aumentare il numero di nemici che cadono e aumentare la durata della tua spada.
Quando si parla di paesi socialisti, spesso si immagina un sistema con il pieno controllo del governo e nessuna proprietà privata. Ma nella pratica, le economie socialiste variano notevolmente.
“Children” presenta un cameo di un grande nome e alcune notizie devastanti
Si dice che questo RAV4 sia in condizioni eccellenti ed è pronto per il gioco delle sedie musicali.
Le riprese dei droni hanno ripreso i vigili del fuoco che sembravano lottare per spegnere l'incendio.
Eyes of Wakanda si collega direttamente al MCU, oltre ad aggiornamenti su X-Men '97, What If..., Daredevil e altro ancora.
Il caporedattore di lunga data, entrato a far parte di Vogue America nel 1988, ha annunciato la notizia in una riunione dello staff la mattina di giovedì 26 giugno.
Ava Gardner avrebbe dovuto sposarsi con Mickey Rooney e Frank Sintra, e frequentare diverse altre star di Hollywood. Ecco uno sguardo alla storia sentimentale di Ava Gardner.
John Cleese ha sposato sua moglie, Jennifer Wade, nel 2012. Ecco tutto quello che c'è da sapere sulla moglie di John Cleese, Jennifer Wade.
Dev Patel ha incontrato la sua ragazza nel 2016 sul set di "Hotel Mumbai". Ecco tutto quello che c'è da sapere su Tilda Cobham-Hervey.
Mi colpisce Improvvisamente come spesso accade È di nuovo la via di mezzo <No, non quello nel pacifico tu marrone, quello al carnevale> Ogni titolo a voce alta…..
Nel 2022, con il rilascio di GPT-3, l'abilità di scrittura sembra diventare meno importante. Con l'intelligenza artificiale, anche le persone con una scrittura scadente possono generare personale di qualità.
Nel mondo frenetico e competitivo di oggi, la propria carriera gioca un ruolo significativo nella crescita personale, nella stabilità finanziaria e nella soddisfazione generale della vita. Tuttavia, molte persone si trovano intrappolate in un ciclo inesorabile di stagnazione e insoddisfazione, che si esauriscono gradualmente nella loro vita professionale.
La scorsa settimana ho notato un comunicato stampa, inviato tramite PressGazette (un sito Web di notizie sui media britannici). L'articolo annunciava che Acast, la società di hosting e pubblicità di podcast di Scandi, avrebbe guidato un consorzio di editori "probabilmente i più influenti" nel podcasting.