2017-12-20 179 views
10

Vue.js + TypeScript kurulumunun minimal, çalışan bir örneği için tüm web’de arama yaptım. Her zamanki gibi "modern JavaScript yığını" ile, bu öğreticilerin çoğu ya birkaç ay önce yazılmış olmasına rağmen ya da çok özel bir kurguya bağlı olarak güncel değil. Oluşturulacak genel, doğrulanabilir bir örnek yok gibi görünüyor.Vue.js ve Tek Dosya Bileşenleri ile TypeScript nasıl kullanılır?

Kullandığım temel şablon, tüm varsayılan seçeneklerle vue-cli init webpack'u çalıştırarak sağlanmıştır. Bu çok fazla kod ürettiğinden, burada her şeyi yapıştırmadım. Bazı özel alıntılara ihtiyaç varsa, soruyu memnuniyetle güncelleyeceğim.

Resmi Vue.js belgelerinin amacı, SFC'ler ile TypeScript'i kurmayı düşünmediği için kullanışsızdır. En son denedim, listenin sonuncusuydu. Ben tam kurulum izledi ama npm run dev aşağıdaki hata beni çalıştırır:

[tsl] ERROR in /Users/[REDACTED]/ts-test/src/main.ts(12,3) 
     TS2345: Argument of type '{ el: string; router: any; template: string; components: { App: { name: string; }; }; }' is not assignable to parameter of type 'ComponentOptions<Vue, DefaultData<Vue>, DefaultMethods<Vue>, DefaultComputed, PropsDefinition<Rec...'. 
    Object literal may only specify known properties, and 'router' does not exist in type 'ComponentOptions<Vue, DefaultData<Vue>, DefaultMethods<Vue>, DefaultComputed, PropsDefinition<Rec...'. 

herkes bu olur ve nasıl çözüleceğini neden ışık tutmayı miyim? Daha da iyisi, webpack şablonuyla çalışan bir Vue.js + TypeScript yapılandırmasının nasıl kurulacağına dair kısa, asgari, adım adım bir örneği memnuniyetle karşılıyorum.

Vue.js ürününde Vue.js ile üretim yapan bazı istemci projelerini vanilya JavaScript ile başarıyla tamamladım, ancak bu TypeScript aracı Vue.js ile birleştiğinde yalnızca beni şaşırtıyor.

+0

merhaba belirtilen gördüğünü sanmıyorum daktilo ile şablon onun https://github.com/morganster yardımcı umut/vue-ts-webpack-template – Morganster

+0

Şimdi ne yazık ki, Vue Router kısmına dikkat etmiyor. – herrbischoff

+0

Şu anda olduğu gibi, tüm örnekler ya şişirilmiş ve karmaşıktır ya da vue-router/vuex'i dikkate almaz. Bu kurulumla sabrımı kaybetmek üzereyim. Muhtemelen tamamen bırakacağım ve daima sahip olduğum gibi devam edeceğim. – herrbischoff

cevap

5

typescript'u vue ile kullanmaya çalıştım. Kişisel görüşüm: iyi çalışmıyor. Bazı vue internals typescript için uygun değildir beri:

  1. vuex küresel Vue örneğini mutasyona
  2. Vue.use, Vue.mixin ve diğer benzer şeyler this.$store.dispatch('some_action') ile benim araştırma yaparken

Ama bulduk Bu harika boilerplates: Daniel Rosenwasser ve TypeScript-Vue-Starter tarafından Microsoft tarafından typescript-vue-tutorial.

Ben de kendim typescript ile vue-webpack-template taklit çalıştık: https://github.com/sobolevn/wemake-vue-template

daha iyi typescript + vue iş akışını yapmak da güzel araç vardır:

Sonunda flow'u kullanmaya karar verdim. Eğer ilgileniyorsanız, this project template'u kontrol edin.

+0

Teşekkürler. Bu, TypeScript + Vue.js'nin mükemmel bir eşleşme olacağını ve özellikle de TypeScript'in kullanmanın harika olacağını düşündüğüm yayınların ve makalelerin hemen hepsinden izlenimler aldığımda ilginç bir gözlem. Şimdiye kadar söyleyebileceğim tek şey sinir bozucu.Takımımın çalışmasını sağlamak için neden saatlerce çalışmam gerektiğini anlamıyorum. – herrbischoff

+0

@herrbischoff benim de en büyük soruydu. – sobolevn

+0

Akış denedim ancak JavaScript/TypeScript Dil Sunucusu ile birlikte kullanıldığında hata üretir. Vim'de ve VScode'da dil sunucusu '// @ flow' hakkında ve TypeScript'e özgü tip bildirimlerinden şikayetçidir. Dostum, bu tüm JavaScript yığını sadece çalışmak için bir smeggin 'kabusu ... Toplumun derin bir nefes alması, çalışma varsayılanlarını tanımlaması, neyin işe yaramadığını ve oradan devam etmesini nasıl sağlarız? Bu, herhangi bir ön geliştirmeyi ** yapmam gerekip gerekmediğini sorduğum noktaya değiniyor. – herrbischoff

3

Absolute agree @ sobolevn'ın görüşü. Ancak, benim için yargılamak için çok fazla bilgi var, TypeScript için topluluk desteği beklemeye değer. VSCode içinde

  1. *.vue dosyanın TypeScript tüysüz desteklenecektir:

    Vue 'ekosistem fazla typescript ediliyor. Bu soruna bakın vetur. Açık Kaynak Ekosistemi.

  2. . vuex-class

  3. vue-test-utils
  4. Yeni tasarımda vue-clivue-router

Yani, geçici bir süre gözlemleyebiliriz. Veya, şu projelere başvurabilirsiniz: TypeScript-Vue-Starter ve A Webpack Template Fork With Typescript Support.