Comments (5)
@davidbeijinho I guess that's a bug. I will work on a fix in the next few days.
from vue-types.
the same result for the vue3
import { defineComponent, createApp, h, computed, ref } from 'vue3'
import VueTypes from '../../../src'
interface ModelItem {
id: string
pet: 'dog' | 'cat'
isNew: boolean
modelname: any
modelprop: any
}
function minLength(value: any) {
return typeof value === 'string' && value.length >= 6
}
const Model = defineComponent({
template: '<li>{{ model.id }} {{ isNew }} (pet: {{ model.pet }})</li>',
props: {
model: VueTypes.shape<ModelItem>({
id: VueTypes.string.isRequired,
pet: VueTypes.oneOf(['dog', 'cat'] as const).isRequired,
isNew: VueTypes.bool,
modelname: VueTypes.custom(minLength).isRequired,
modelprop: VueTypes.custom<string>(minLength).isRequired,
}).isRequired,
username: VueTypes.custom(minLength).isRequired,
theprop: VueTypes.custom<string>(minLength).isRequired,
},
setup(props) {
const isNew = computed(() => (props.model.isNew ? '- new' : ''))
return { isNew }
},
})
const App = defineComponent({
template: `
<section>
<h1>A list of models</h1>
<button type="button" @click="addPet('parrot')">Add parrot (invalid, logs to console)</button>
<button type="button" @click="addPet('dog')">Add dog</button>
<ul><Model v-for="model in models" :model="model" :key="model.id" :username="'aaaaaaaa'" :theprop="'aaaaaaaa'" /></ul>
</section>
`,
setup() {
const models = ref<ModelItem[]>([])
function addPet(pet: ModelItem['pet']) {
models.value.forEach((model) => {
model.isNew = false
})
models.value.push({
id: 'model-' + models.value.length,
pet,
isNew: true,
modelname: false,
modelprop: {},
})
}
return { models, addPet }
},
components: {
Model,
},
})
createApp({ render: () => h(App) }).mount('#app')
from vue-types.
@davidbeijinho I've pushed a fix in #177 and published it as [email protected]
.
Could you check if it fixed your issue?
from vue-types.
@davidbeijinho sorry to ping you again. Can you confirm that the issue has been solved?
from vue-types.
Released in the stable channel as v4.1.1.
from vue-types.
Related Issues (20)
- Dependency Dashboard
- eslint vue/require-default-prop warning HOT 8
- using `.def()` with `oneOfType` throws error HOT 3
- isRequired has unexpected behaviour with func HOT 2
- Question:Use defineProps has ESLint Error HOT 2
- Add `null` in possible generic types of `object` HOT 6
- Validator not works HOT 2
- Migrate to vitest HOT 1
- validateType throw an error when used with shape HOT 2
- Set the def attribute, the props received by the component are still the default type HOT 12
- Wrong documentation for number prop default HOT 2
- `validateType` not working with shim..? HOT 4
- `validateType(String, undefined) === true`? HOT 6
- validateType does not treat `null` the same as Vue does HOT 2
- func cannot recognize async functions for validation. HOT 2
- validate can't determine param type HOT 2
- Could not find a declaration file for module 'vue-types' HOT 6
- How to update VueTypes.extend? HOT 2
- Hello, why does undefineProps return unknown when defined? HOT 4
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 vue-types.