Comments (4)
The PR from @ChuChencheng works great!
There are still issues with the required
option. Here is an example from the RFC:
import { createComponent } from 'vue'
createComponent({
props: {
foo: {
type: String,
required: true,
},
bar: {
type: String,
},
} as const,
setup(props) {
props.foo // "string" as expected
props.bar // should be -> "string | undefined" but it actually "string"
}
})
from composition-api.
@liximomo Do we have any plan to merge #16 and fix the required
issue mentioned above by @jsmith ?
from composition-api.
Trying it out as well, found some problems with props inference too.
props: {
// complexObject: {
// type: (Object as unknown) as PropType<ComplexObject>,
// required: true,
// }, <= inferred as {type: ComplexObject, required true}, should be inferred as ComplexObject
complexObject: (Object as unknown) as PropType<ComplexObject>, // <= inferred as ComplexObject, but there is no required, should be inferred as optional
} as const,
In general, this section doesn't seem to be enforced in the actual implementation.
PS: remember to import PropType
from vue-function-api
, it has a different signature from the one into vue
PS2:
In 3.0, the props declaration is optional. If you don't want runtime props validation, you can omit props declaration and declare your expected prop types directly in TypeScript
If anyone is wondering, this isn't already working (as expected I guess)
from composition-api.
I have the same issue. Type inference does not work properly for props:
My workaround to avoid Typescript compilation issues is to use setup(props: any) {}
to skip inference.
from composition-api.
Related Issues (20)
- Typing component refs HOT 2
- onMounted is called when there is no active component instance to be associated with HOT 7
- Variables created with ref in <templete>,do not automatically expand value HOT 4
- why setup run twice in vue2 HOT 8
- setup function provide a wrong prop type,when use type: Function HOT 3
- not work nice in web component, no error HOT 2
- How to avoid duplicate register composition-api ? HOT 1
- It doesn't work with nuxt 2 HOT 2
- watch 的回调如果发生错误,会一直触发调用 HOT 1
- ComponentRenderProxy类型与Vue不兼容,导致Ts编译报错 HOT 2
- vue2项目, 怎么在option API的基础上, 混用composition API? HOT 1
- render 函数中使用 web components 自定义标签,移除了HTML中原生的 slot 属性 HOT 3
- No support for Vue >= 2.7
- cdn方式引入导致vue devtools调试数据丢失 HOT 2
- 客户端使用vuecli 打包出来的commonjs模式的库,出现“Error: [vue-composition-api] must call Vue.use(VueCompositionAPI) before using any functio” HOT 2
- setup返回的data在development环境下会被expose到全局mixin的data中 HOT 2
- 是否有提供withDefaults?
- 安装时,报vue版本范围错误 HOT 2
- 【Bug】Memory Leak cause by toVue3ComponentInstance HOT 1
- 【BUG】watch() 传入reactive类型的数据,vue3.4与3.3表现不一致 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from composition-api.