本文整理汇总了TypeScript中ts-invariant.invariant.error方法的典型用法代码示例。如果您正苦于以下问题:TypeScript invariant.error方法的具体用法?TypeScript invariant.error怎么用?TypeScript invariant.error使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ts-invariant.invariant
的用法示例。
在下文中一共展示了invariant.error方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: match
public match(
idValue: IdValue,
typeCondition: string,
context: ReadStoreContext,
): boolean | 'heuristic' {
const obj = context.store.get(idValue.id);
if (!obj) {
// https://github.com/apollographql/apollo-client/pull/3507
return idValue.id === 'ROOT_QUERY';
}
if (!obj.__typename) {
if (shouldWarn()) {
invariant.warn(`You're using fragments in your queries, but either don't have the addTypename:
true option set in Apollo Client, or you are trying to write a fragment to the store without the __typename.
Please turn on the addTypename option and include __typename when writing fragments so that Apollo Client
can accurately match fragments.`);
invariant.warn(
'Could not find __typename on Fragment ',
typeCondition,
obj,
);
invariant.warn(
`DEPRECATION WARNING: using fragments without __typename is unsupported behavior ` +
`and will be removed in future versions of Apollo client. You should fix this and set addTypename to true now.`,
);
}
return 'heuristic';
}
if (obj.__typename === typeCondition) {
return true;
}
// XXX here we reach an issue - we don't know if this fragment should match or not. It's either:
// 1. A fragment on a non-matching concrete type or interface or union
// 2. A fragment on a matching interface or union
// If it's 1, we don't want to return anything, if it's 2 we want to match. We can't tell the
// difference, so we warn the user, but still try to match it (backcompat).
if (shouldWarn()) {
invariant.error(
'You are using the simple (heuristic) fragment matcher, but your ' +
'queries contain union or interface types. Apollo Client will not be ' +
'able to accurately map fragments. To make this error go away, use ' +
'the `IntrospectionFragmentMatcher` as described in the docs: ' +
'https://www.apollographql.com/docs/react/advanced/fragments.html#fragment-matcher',
);
}
return 'heuristic';
}